//
//  SiteTravelViewController.m
//  BeanTrip
//
//  Created by dlios on 15-7-9.
//  Copyright (c) 2015年 PandaGroup. All rights reserved.
//

#import "SiteTravelViewController.h"
#import "SiteTravelTableViewCell.h"
#import "UIImageView+WebCache.h"
#import "HTTPTool.h"
#import "MBProgressHUD.h"
#import "MJRefresh.h"
#import "BaseInformationViewController.h"

#define WIDTH ([UIScreen mainScreen].bounds.size.width/375)
#define HEIGH ([UIScreen mainScreen].bounds.size.height/667)
@interface SiteTravelViewController ()<UITableViewDataSource,UITableViewDelegate>
/**
 *  设置一个小菊花属性
 */
@property (nonatomic, retain) MBProgressHUD *HUD;
/**
 *  设置一个提示框属性
 */
@property(nonatomic, retain)UIAlertView *alter;
/**
 *  显示的图片
 */
@property(nonatomic, retain)NSMutableArray *picArray;
/**
 *  图片右边的文字的显示
 */
@property(nonatomic, retain)UILabel *pictureLabel;
@property(nonatomic, retain)UILabel *pictureLabel2;
@property(nonatomic, retain)UILabel *pictureLabel3;
/**
 *  创建一个tableView属性
 */
@property(nonatomic, retain)UITableView *siteTableView;
@end

@implementation SiteTravelViewController
- (void)dealloc
{
    [_HUD release];
    [_alter release];
    [_picArray release];
    [_pictureLabel release];
    [_pictureLabel2 release];
    [_pictureLabel3 release];
    [_siteTableView release];
    [_getSiteId release];
    [_getSiteType release];
    [_addressValue release];
    [_contentValue release];
    [_titleCon release];
    [super dealloc];
}
-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self=[super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        self.picArray=[NSMutableArray array];
    }
    return self;
}
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.navigationController.navigationBar.translucent = NO;
    
     self.title = self.titleCon;
    
    /**
     1.创建一个tableView
     
     :returns: return value description
     */
    self.siteTableView=[[UITableView alloc] initWithFrame:CGRectMake(0, 0, 375*WIDTH, 667*HEIGH) style:UITableViewStyleGrouped];
    /**
     * 2. 设置tableView的背景颜色
     */
    self.siteTableView.backgroundColor=[UIColor whiteColor];
    /**
     *  3.把tableView添加到view上
     */
    [self.view addSubview:self.siteTableView];
    /**
     *  4.设置tableView的行高
     */
    //    self.myTableView.rowHeight=180;
    /**
     *  5.设置代理人
     */
    self.siteTableView.dataSource=self;
    self.siteTableView.delegate=self;
    /**
     *  6.内存释放
     */
    [self.siteTableView release];
    
    /**
     菊花
     
     :returns: return value description
     */
    self.HUD = [[MBProgressHUD alloc] initWithView:self.siteTableView];
    [self.siteTableView addSubview:self.HUD];
    self.HUD.labelText = @"加载中";
    [self.HUD show:YES];
    
    //请求值
    self.next_Page = 0;
    //网络请求
    [self createData:0];
    
    // 给定属性一个初值
    self.isUpLoading = NO;
    [self addFooter];
}


#pragma mark --上拉加载更多
- (void)addFooter
{
    //    __unsafe_unretained typeof(self) vc = self;
    __block SiteTravelViewController *siteVC = self;
    // 添加上拉刷新尾部控件
    [self.siteTableView addFooterWithCallback:^{
        // 进入刷新状态就会回调这个Block
        siteVC.isUpLoading = YES;//标记为上拉操作
        [siteVC createData:siteVC.next_Page];//请求更多数据
        
    }];
}

-(void)createData:(NSInteger)pageNum
{
    NSString *url = [NSString stringWithFormat:@"http://api.breadtrip.com/destination/place/%@/%@/pois/all/?sort=default&start=%ld",self.getSiteType, self.getSiteId, pageNum];
    self.next_Page=self.next_Page+20;
 
    [HTTPTool get:url body:nil httpResult:JSON success:^(id result) {
        NSDictionary *dic = result;
        NSArray *itemsArr=dic[@"items"];
        for (NSDictionary *dicResult in itemsArr) {
            SiteModel *siteModel=[[SiteModel alloc] initWithDic:dicResult];
            [self.picArray addObject:siteModel];
        }
        
        [self.siteTableView reloadData];
        /**
         *加载完成,取消菊花
         */
        [self.HUD removeFromSuperview];
        
    } failure:^(NSError *error) {
        [self.HUD removeFromSuperview];
        self.alter = [[UIAlertView alloc] initWithTitle:@"提示" message:@"网络不给力" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
        [self.alter show];
        [self.alter release];
        NSLog(@"%@",error);
    }];
}

/**
 *  7.实现第一个协议方法(必须要实现),需指定分区section里有多少行数据，分区默认是1个
 *
 *  @param tableView
 *  @param section
 *
 *  @return 数组里有多少元素就有多少行
 */

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 1;
}
/**
 * 8.第二个协议方法  返回值只有一个
 *
 *  @param tableView
 *  @param indexPath
 *
 *  @return cell
 */
-(SiteTravelTableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    /**
     *  设置重用池的重用标志
     
     */
    static NSString *reuse=@"reuse";
    /**
     *  tableView需要先在重用池中根据对应的重用标志去找空闲的cell，如果有空闲的cell，就不需要创建，直接进行给值，如果没有再创建。
     */
    SiteTravelTableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:reuse];
    /**
     *  如果没有找到对应的cell，就需要创建一个cell
     */
    if (!cell) {
        cell=[[[SiteTravelTableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:reuse] autorelease];
    }
    cell.backgroundColor=[UIColor whiteColor];
    SiteModel *site=self.picArray[indexPath.section];
    [cell.siteImageView sd_setImageWithURL:[NSURL URLWithString:site.cover_s]];
 
    cell.siteLabel.text = site.name;
    
    cell.siteLabel2.text =site.bDescription;
 
    cell.siteLabel3.text = [NSString stringWithFormat:@"%@ 人去过",[site.visited_count description]];
    
    /**
     * 动画效果
     */
    cell.layer.transform = CATransform3DMakeScale(0.3, 0.3, 0.1);
    [UIView animateWithDuration:0.5 animations:^{
        
        cell.layer.transform = CATransform3DMakeScale(1, 1, 0.1);
    }];
    
    /**
     *  去掉UITableView中cell的边框和分割线
     */
    //self.siteTableView.separatorStyle=UITableViewCellSelectionStyleNone;
    return cell;
    
}

/**
 * 9. tableView里section
 *
 *  @param tableView tableView description
 *
 *  @return return value description
 */
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return self.picArray.count;
}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 140*HEIGH;
}
/**
 *  控制头部
 */
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return 8;
}
/**
 *  控制尾部
 */
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
    return 8;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    BaseInformationViewController *baseInformation=[[BaseInformationViewController alloc] init];
    SiteModel *site=self.picArray[indexPath.section];
    baseInformation.addressStr=site.address;
    baseInformation.contentStr=site.bDescription;
    baseInformation.getTitleValue = site.name;
    [self.navigationController pushViewController:baseInformation animated:YES];

    [baseInformation release];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end
